/*
 * MyTest.cpp
 *
 *  Created on: 2013-1-7
 *      Author: heqiu
 */

#include "SDL/SDL.h"
#include <string>

const int SCREEN_WIDTH = 800;
const int SCREEN_HEIGHT = 600;
const int SCREEN_BPP = 32;

SDL_Surface * load_image(std::string filename) {
	SDL_Surface * loadedImage = NULL;
	SDL_Surface * optimizedImage = NULL;

	loadedImage = SDL_LoadBMP(filename.c_str());

	if (loadedImage != NULL) {
		optimizedImage = SDL_DisplayFormat(loadedImage);
		SDL_FreeSurface(loadedImage);
	}

	return optimizedImage;
}

void apply_surface(int x, int y, SDL_Surface * source,
		SDL_Surface * destination) {
	SDL_Rect offset;
	offset.x = x;
	offset.y = y;
	SDL_BlitSurface(source, NULL, destination, &offset);
}

int main(int argc, char * args[]) {
	SDL_Surface * message = NULL;
	SDL_Surface * screen = NULL;

	if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {
		return 1;
	}

	screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP,
			SDL_SWSURFACE);
	if(screen == NULL){
		return 1;
	}

	SDL_WM_SetCaption("Hello World",NULL);

	message = load_image("D:\\MyGameProject\\pic\\test1.bmp");
	apply_surface(0,0,message,screen);

	if(SDL_Flip(screen)==-1){
		return 1;
	}

	SDL_Delay(6000);

	SDL_FreeSurface(message);

	SDL_FreeSurface(screen);

	SDL_Quit();

	return 0;
}

